Intreruperi.
Intreruperea este produsa de un eveniment exterior CPU, adesea de o operatie de intrare/iesire. Efectul intreruperii consta in suspendarea executiei programului aflat in rulare si in transferarea controlului unei rutine dedicate tratarii intreruperii (intrrerupt handler); acesteia ii revine sarcina de a efectua actiunile cerute de evenimentul extern care a generat intreruperea.
Intreruperile imbunatatesc eficienta de utilizare a unitatii centrale, deoarece permit efectuarea de operatii I/O in paralel cu activitatea CPU. 
1.Tipuri de intreruperi. 
Microprocesoarele folosesc, in general, patru clase de intreruperi:
a) intreruperi vectorizate;
b) intreruperi nemascabile;
c) intreruperi nevectorizate;
d) intreruperi cu relansare.  

a) Intreruperi vectorizate.
Intrucit exista mai multe surse de intreruperi, selectarea rutinei de tratare presupune cunoasterea identitatii sursei intreruperii. Aceasta se realizeaza prin executia unui ciclu special, numit ciclu de confirmare a acceptarii cererii de intrerupere (interrupt acknowledge cycle). Pentru aceasta se utilizeaza magistrala externa a microprocesorului. In cadrul ciclului nu se executa operatii de acces la memorie sau la un port de intrare/iesire, ci se comanda (direct sau indirect) elementul care a generat intreruperea, acesta trebuind sa furnizeze CPU un cod de identificare. Acest cod, citit de catre microprocesor in ciclul de confirmare a acceptarii cererii de intrerupere, este utilizat de catre CPU ca index al unei matrici pastrate in memorie. In felul acesta se poate realiza accesul la elementul matricii care contine informatia necesara lansarii in executie a rutinei de tratare a intreruperii, dupa care are loc activarea rutinei mentionate.
In general intreruperile vectorizate sint mascabile adica este posibila ignorarea cererii de intrerupere vectorizata formulata de un dispozitiv extern. Pentru aceasta se folosescinstructiuni adecvate.
Primirea cererilor de intreruperi vectorizate se face printr un singur semnal fizic, deoarece detaliile privind sursa cererii se obtin prin ciclul de confirmare a acceptarii cererii de intrerupere.
b) Intreruperi nemascabile.
Acest tip de intreruperi nu poate fi mascat, deci o astfel de cerere de intrerupere suspenda executia programului aflat in rulaj indiferent de functia executata de acesta. Evenimentele externe asociate intreruperilor nemascabile sint mai importante decit orice operatie posibila efectuata prin program. De aceea, doar evenimentelor cu efecte catastrofale li se atribuie posibilitatea de emitere de intreruperi nemascabile. Ca exemple tipice se mentioneaza tendinta de a iesi din parametrii de functionare normala a sursei de alimentare sau detectarea unor erori in operatiile in conjunctie cu memoria.
Semnalarea unei cereri de intrerupere nemascabila se face printr un semnal de intrare distinct. Nu mai este necesara indicarea sursei unei astfel de intreruperi, intrucit ea se cunoaste. Cu toate acestea, la primirea unei intreruperi nemascabile, majoritatea microprocesoarelor efectueaza acelasi ciclu de confirmare a acceptarii cererii de intrerupere nu pentru obtinerea de date suplimentare, ci pentru a confirma initiatorului ca intreruperea se afla in curs de servire.
c) Intreruperi nevectorizate
Intreruperile nevectorizate se implementeaza prin acelasi mecanism ca si in cazul intreruperilor nemascabile, adica exista linii specializate de intrare pentru semnalarea cererilor. Spre deosebire de cele nemascabile, intreruperile nevectorizate pot fi dezactivate prin program.
d) Intreruperi cu relansare
Cind apare necesitatea servirii unei cereri de intrerupere CPU suspenda programul in curs de executie si salveaza minimum de informatie pentru a putea relua, la un moment ulterior, executia programului suspendat. Suspendarea unui program se face, de regula, la terminarea instructiunii curente prntru a se reduce la minimum posibil informatiile ce se salveaza in conjunctie cu programul intrerupt. Sint, insa, cazuri cind intreruperea este declansata de o situatie care impiedica insasi terminarea executiei corecte a unei instructiuni, caz in care intreruperea trebuie servita inainte de terminarea instructiunii. Ca exemplu se poate cita aparitia unei erori intr un ciclu de acces la memorie. Deoarece acest tip de intrerupere suspenda un program in mijlocul executiei unei instructiuni este necesara salvarea intregii informatii necesare executiei instructiunii. O alta solutie ar consta in proiectarea instructiunilor astfel incit sa fie posibila intotdeauna repornirea executiei lor, indiferent de momentul la care a survenit intreruperea.

2.Timpul de latenta
Intreruperile semnaleaza aparitia unor evenimente externe care necesita o anumita actiune de raspuns din partea unitatii centrale de prelucrare. In cazul transferului unui bloc de date spre un periferic, evenimentul consta in transferul elementului de date urmator sau in dezactivarea intreruperii de la acel periferic (atunci cind transferul intregului bloc este terminat).
Un element important de caracterizare a microprocesoarelor este viteza cu care acestea raspund la cererile de intrerupere. Intervalul de timp minim intre servirea a doua cereri de intrerupere nu poate fi mai scurt decit timpul de servire a uneia dintre ele. Timpul cerut de servirea unei cereri de intrerupere depinde de operatiile necesitate de evenimentul extern care a cauzat intreruperea, precum si de intirzierea intre activarea cererii si inceputul activitatii rutinei de testare. Aceasta intirziere este caracteristica microprocesorului si se numeste timp de latenta.
Pentru a putea evalua timpul de latenta a  unui microprocesor trebuie examinata secventa de operatii necesare pentru comutarea de la programul intrerupt la rutina de servire a intreruperii. Operatiile necesare in acest scop sint: salvarea in stiva a contorului programului si a  indicatorilor de conditie; si executia ciclului de confirmare a acceptarii cererii de  intrerupere;
Aceste operatii sint cele strict necesare pentru lansarea in executie a rutinei de tratare. De cele mai multe ori, rutina foloseste toate registrele unitatii centrale (sau o mare parte a lor), asa ca este necesara si salvarea in stiva a continutului acestora. Unele microprocesoare efectueaza automat salvarea, o data cu cea a continutului programului si a indicatorilor; la altele salvarea se face in rutina de tratare a intreruperilor. Oricum, timpul de salvare trebuie luat in considerare la evaluarea timpului de latenta.

3.Prioritati
Intrucit, in cadrul unui sistem, pot exista mai multe surse de intrerupere, este posibila aparitia simultana a mai multor cereri de intrerupere. In consecinta devine necesara prezenta unui mecanism de solutionare a conflictului intre aceste cereri. Mecanismul se bazeaza pe asocierea de prioritati cererilor de intrerupere. Lui i se poate aloca si sarcina de a decide daca unei cereri de intrerupere i se poate da raspuns la un anumit moment. Regula generala adoptata este accea ca o cerere nu poate fi acceptata daca, la acel moment, se prelucreaza o intrerupere de nivel de prioritate superior. Ca urmare, tratarea cererilor de intrerupere cu prioritate mai mica este aminata pina cind conditiile permit tratarea.
Criteriul de baza pentru alocarea prioritatilor este bazat pe viteza de raspuns impusa de evenimentele asociate. Cu cit aceasta este mai mare, cu atit nivelul de prioritate este mai inalt. Ordinea de prioritate este,in general,urmatoarea:
1) intreruperi cu relansare - ele au prioritatea maxima, deoarece sint asociate unor evenimente care nu pot astepta terminarea instructiunii curente pentru a fi servite;
2) intreruperi nemascabile - intreruperile din aceasta clasa sint mai prioritare decit cele vectorizate sau nevectorizate, intrucit evenimentele care le determina necesita o servire rapida si intreruperile nu pot fi mascate;
3) intreruperi vectorizate;
4) intreruperi nevectorizate.
Intreruperile vectorizate constituie o clasa aparte, implicind diferiti timpi de raspuns, deci cererile sint formulate pe aceeasi linie catre unitatea centrala de prelucrare. Evenimentul care determina o intrerupere vectorizata este specificat prin indexul vectorului, citit pe durata ciclului de confirmare a acceptarii cererii de intrerupere. In consecinta este necesara introducerea unei ordonari suplimentare a prioritatilor in clasa intreruperilor vectorizate, ordonare realizata prin folosirea unui circuit exterior unitatii centrale de prelucrare, intrucit CPU are o singura linie pentru toate cererile de acelasi tip.
Fiecare familie de microprocesoare dispune de o unitate de gestiune a intreruperilor, care arbitreaza diferitele cereri de intreruperi vectorizate (fig. 2.6). Aceste circuite accepta cererile individuale de intreruperi de la dispozitivele externe si asociaza cite o prioritate fiecarei cereri. Cind se desfasoara un ciclu de confirmare a acceptarii cererii de intrerupere semnalul de iesire INTAi indica evenimentul a carui cerere de intrerupere este preluata spre servire. INTAi permit dispozitivului selectat sa transmita pe magistrala indexul vectorului sau de intrerupere pe durata ciclului de confirmare a acceptarii cererii de intrerupere, astfel incit sa se poata activa de catre CPU subrutina adecvata de tratare.

Exemplu mod de implementare a prioritatilor daisy chain. Daca numarul evenimentelor generatoare de cereri de intrerupere este superior celui cu care poate lucra unitatea de gestiune a intreruperilor se poate realiza o conexiune de tip daisy chain, in care m unitati sint interconectate la aceeasi linie INTRi si aceeasi linie INTAi. Devine posibila ierarhizarea prioritatilor pe o intrare i de formulare a cererilor de intrerupere catre CPU. Prioritatea depinde de pozitia in inserierea de unitati de gestiune a intreruperilor. Cind exista o cerere de intrerupere formulata prin intermediul unei unitati toate cererile formulate la unitati ulterioare in conectarea seriala nu sint onorate la acel moment.
O alta caracteristica a unitatilor de gestiune a cererilor de intrerupere consta in dezactivarea tuturor cererilor de intrerupere avind nivelul de prioritate inferior celei aflate in curs de servire. Drept urmare, evenimentele minore sint impiedicate sa lungeasca durata servirii intreruperii provocate de un eveniment important. Deci, daca in curs de rulare se afla rutina intreruperii de prioritate i, intreruperea de prioritate j va fi servita doar dupa terminarea tratarii intreruperii i,presupunind ca i are prioritate superioara lui j.